home *** CD-ROM | disk | FTP | other *** search
/ Revista do CD-ROM 101 / CD-ROM 101.iso / compl / maya5ple / Install_MayaPLE5_English.exe / Maya / Data1.cab / polygonConstraint.mel < prev    next >
Encoding:
Text File  |  2003-07-17  |  54.6 KB  |  1,706 lines

  1. // Copyright (C) 1997-2002 Alias|Wavefront,
  2. // a division of Silicon Graphics Limited.
  3. //
  4. // The information in this file is provided for the exclusive use of the
  5. // licensees of Alias|Wavefront.  Such users have the right to use, modify,
  6. // and incorporate this code into other products for purposes authorized
  7. // by the Alias|Wavefront license agreement, without fee.
  8. //
  9. // ALIAS|WAVEFRONT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  10. // INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
  11. // EVENT SHALL ALIAS|WAVEFRONT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  12. // CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  13. // DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  14. // TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  15. // PERFORMANCE OF THIS SOFTWARE.
  16. //
  17. //
  18. // Description:
  19. //        Creates a window to allow polygonal selection constraint setup.
  20. //
  21.  
  22. global proc
  23. resetPolySelectConstraint ()
  24. {
  25.     if (`optionVar -exists polySelectConstraintState`) {
  26.         optionVar -stringValue polySelectConstraintState "";
  27.     }
  28.     polySelectConstraint -disable;
  29. }
  30.  
  31. global proc
  32. rememberPolySelectConstraint ()
  33. {
  34.     optionVar -stringValue polySelectConstraintState `polySelectConstraint -query -stateString`;
  35. }
  36.  
  37. global proc
  38. restorePolySelectConstraint ()
  39. {
  40.     if (`optionVar -exists polySelectConstraintState`) {
  41.         string $cmd = `optionVar -query polySelectConstraintState`;
  42.         if ($cmd != "") {
  43.             catch (`eval ($cmd)`);
  44.         }
  45.     }
  46. }
  47.  
  48. // Update window
  49. ///////////////////////////////////////////////////////////////////////
  50. global proc polygonConstraintUpdate(string $whichPanel)
  51. //    string $scrollFormName,
  52. //    string $vtxLayoutName, 
  53. //    string $edgLayoutName, 
  54. //    string $facLayoutName, 
  55. //    string $mapLayoutName) 
  56. {
  57.     waitCursor -state on ;
  58.     // TOCLEAN
  59.     string $scrollFormName    = "polyConstraintScrollForm";
  60.     string $vtxLayoutName    = "polyConstraintVtx";
  61.     string $edgLayoutName    = "polyConstraintEdg";
  62.     string $facLayoutName    = "polyConstraintFac";
  63.     string $mapLayoutName    = "polyConstraintOff";
  64.     //END TOCLEAN
  65.         
  66.     float     $fv[], $fv2[], $fv3[];
  67.     int     $iv[], $iv2[];
  68.  
  69.     int $vtxExist = `frameLayout -ex $vtxLayoutName`;
  70.     int $edgExist = `frameLayout -ex $edgLayoutName`;
  71.     int $facExist = `frameLayout -ex $facLayoutName`;
  72.     int $mapExist = `frameLayout -ex $mapLayoutName`;
  73.     
  74.     // hide any existing layout
  75.     if ($vtxExist)
  76.         frameLayout -e -vis false $vtxLayoutName;
  77.     if ($edgExist)
  78.         frameLayout -e -vis false $edgLayoutName;
  79.     if ($facExist)
  80.         frameLayout -e -vis false $facLayoutName;
  81.     if ($mapExist)
  82.         frameLayout -e -vis false $mapLayoutName;
  83.     
  84.     int $itemType[] = `polySelectConstraint -q -t`;
  85.     // create layout if not already done
  86.     if (($itemType[0] == 0x0001) && !$vtxExist) {
  87.         polygonConstraintVtx($vtxLayoutName, $scrollFormName);
  88.         $vtxExist = true;
  89.     }
  90.     if (($itemType[0] == 0x8000) && !$edgExist) {
  91.         polygonConstraintEdg($edgLayoutName, $scrollFormName);
  92.         $edgExist = true;
  93.     }
  94.     if (($itemType[0] == 0x0008) && !$facExist) {
  95.         polygonConstraintFac($facLayoutName, $scrollFormName);
  96.         $facExist = true;
  97.     }
  98.     if (($itemType[0] == 0x0010) && !$mapExist) {
  99.         polygonConstraintMap($mapLayoutName, $scrollFormName);
  100.         $mapExist = true;
  101.     }
  102.         
  103.     // mode
  104.     $iv = `polySelectConstraint -q -m`;
  105.     $iv[0] = $iv[0]+1;
  106.     if ($iv[0] < 3) {
  107.         radioButtonGrp -e -sl $iv[0] PolyModRadio;
  108.     } else {
  109.         radioButtonGrp -e -sl ($iv[0] - 2) PolyModRadio2;
  110.     }
  111.  
  112.     // propagation
  113.     int $p  = `polySelectConstraint -q -bo`;
  114.     if ($p)
  115.         radioButtonGrp -e -sl 3 PolyPropSelect;
  116.     else {
  117.         $p = `polySelectConstraint -q -sh`;
  118.         if ($p)
  119.             radioButtonGrp -e -sl 2 PolyPropSelect;
  120.         else
  121.             radioButtonGrp -e -sl 1 PolyPropSelect;
  122.     }
  123.     // location
  124.     if ($itemType[0] == 0x0001 ||
  125.         $itemType[0] == 0x8000 ||
  126.         $itemType[0] == 0x0008 ||
  127.         $itemType[0] == 0x0010) {
  128.         
  129.         $iv = `polySelectConstraint -q -w`;
  130.         $iv[0] = $iv[0]+1;
  131.         
  132.         if ($vtxExist) radioButtonGrp -e -sl $iv[0] PolyVLocRadio;
  133.         if ($edgExist) radioButtonGrp -e -sl $iv[0] PolyELocRadio;
  134.         if ($facExist) radioButtonGrp -e -sl $iv[0] PolyFLocRadio;
  135.         if ($mapExist) radioButtonGrp -e -sl $iv[0] PolyMLocRadio;
  136.     }
  137.     
  138.     // edge smoothness
  139.     if ($itemType[0] == 0x8000) {
  140.         
  141.         $iv = `polySelectConstraint -q -sm`;
  142.         $iv[0] = $iv[0]+1;
  143.         
  144.         radioButtonGrp -e -sl $iv[0] PolyESmtRadio;
  145.     }
  146.  
  147.     // facet properties
  148.     if ($itemType[0] == 0x0008) {
  149.         
  150.         // size
  151.         $iv = `polySelectConstraint -q -sz`;
  152.         $iv[0] = $iv[0]+1;
  153.         radioButtonGrp -e -sl $iv[0] PolyFSizRadio;
  154.     
  155.         // planar
  156.         $iv = `polySelectConstraint -q -p`;
  157.         $iv[0] = $iv[0]+1;
  158.         radioButtonGrp -e -sl $iv[0] PolyFPlnRadio;
  159.     
  160.         // convex
  161.         $iv = `polySelectConstraint -q -c`;
  162.         $iv[0] = $iv[0]+1;
  163.         radioButtonGrp -e -sl $iv[0] PolyFCvxRadio;
  164.     
  165.         // holes
  166.         $iv = `polySelectConstraint -q -h`;
  167.         $iv[0] = $iv[0]+1;
  168.         radioButtonGrp -e -sl $iv[0] PolyFHolRadio;
  169.     
  170.         // mapped
  171.         $iv = `polySelectConstraint -q -tx`;
  172.         $iv[0] = $iv[0]+1;
  173.         radioButtonGrp -e -sl $iv[0] PolyFMapRadio;
  174.     
  175.         // topo
  176.         $iv = `polySelectConstraint -q -tp`;
  177.         int $iv1 = false;
  178.         int $iv2 = false;
  179.         switch ($iv[0]) {
  180.             case 1: $iv1 = true; break;
  181.             case 2: $iv2 = true; break;
  182.             case 3: $iv1 = $iv2 = true; break;
  183.         }
  184.         checkBoxGrp -e -v1 $iv1 -v2 $iv2 PolyFTopCheck;
  185.     }
  186.     
  187.     // edge Length
  188.     if ($itemType[0] == 0x8000) {
  189.         
  190.         $iv = `polySelectConstraint -q -l`;
  191.         $fv = `polySelectConstraint -q -lb`;
  192.         
  193.         checkBox -e -v $iv[0] polyELenCheck;
  194.         floatSliderGrp -e -v $fv[0] minELenSld;
  195.         floatSliderGrp -e -v $fv[1] maxELenSld;
  196.     }
  197.     
  198.     // Angle
  199.     if ($itemType[0] == 0x0001 ||
  200.         $itemType[0] == 0x8000 ||
  201.         $itemType[0] == 0x0010) {
  202.         
  203.         $iv = `polySelectConstraint -q -a`;
  204.         $fv = `polySelectConstraint -q -ab`;
  205.         
  206.         if ($vtxExist) {
  207.             checkBox -e -v $iv[0] polyVAngCheck;
  208.             floatSliderGrp -e -v $fv[0] minVAngSld;
  209.             floatSliderGrp -e -v $fv[1] maxVAngSld;
  210.         }
  211.         if ($edgExist) {
  212.             checkBox -e -v $iv[0] polyEAngCheck;
  213.             floatSliderGrp -e -v $fv[0] minEAngSld;
  214.             floatSliderGrp -e -v $fv[1] maxEAngSld;
  215.         }
  216.         if ($mapExist) {
  217.             checkBox -e -v $iv[0] polyMAngCheck;
  218.             floatSliderGrp -e -v $fv[0] minMAngSld;
  219.             floatSliderGrp -e -v $fv[1] maxMAngSld;
  220.         }
  221.     }
  222.     
  223.     // Facet Area
  224.     if ($itemType[0] == 0x0008) {
  225.         
  226.         $iv = `polySelectConstraint -q -ga`;
  227.         $fv = `polySelectConstraint -q -gab`;
  228.         
  229.         checkBox -e -v $iv[0] polyFAreaCheck;
  230.         floatSliderGrp -e -v $fv[0] minFAreaSld;
  231.         floatSliderGrp -e -v $fv[1] maxFAreaSld;
  232.     }
  233.     
  234.     //Mapped area
  235.     if ($itemType[0] == 0x0001 ||
  236.         $itemType[0] == 0x8000 ||
  237.         $itemType[0] == 0x0008 ||
  238.         $itemType[0] == 0x0010) {
  239.         
  240.         $iv = `polySelectConstraint -q -ta`;
  241.         $iv[0] = $iv[0]+1;
  242.         $fv = `polySelectConstraint -q -tab`;
  243.         
  244.         if ($vtxExist) {
  245.             radioButtonGrp -e -sl $iv[0] polyVArea2Radio;
  246.             floatSliderGrp -e -v $fv[0] minVArea2Sld;
  247.             floatSliderGrp -e -v $fv[1] maxVArea2Sld;
  248.         }
  249.         if ($edgExist) {
  250.             radioButtonGrp -e -sl $iv[0] polyEArea2Radio;
  251.             floatSliderGrp -e -v $fv[0] minEArea2Sld;
  252.             floatSliderGrp -e -v $fv[1] maxEArea2Sld;
  253.         }
  254.         if ($facExist) {
  255.             radioButtonGrp -e -sl $iv[0] polyFArea2Radio;
  256.             floatSliderGrp -e -v $fv[0] minFArea2Sld;
  257.             floatSliderGrp -e -v $fv[1] maxFArea2Sld;
  258.         }
  259.         if ($mapExist) {
  260.             radioButtonGrp -e -sl $iv[0] polyMArea2Radio;
  261.             floatSliderGrp -e -v $fv[0] minMArea2Sld;
  262.             floatSliderGrp -e -v $fv[1] maxMArea2Sld;
  263.         }
  264.     }
  265.     
  266.     //Distance
  267.     if ($itemType[0] == 0x0001 ||
  268.         $itemType[0] == 0x8000 ||
  269.         $itemType[0] == 0x0008 ||
  270.         $itemType[0] == 0x0010) {
  271.         
  272.         $iv = `polySelectConstraint -q -d`;
  273.         $iv[0] = $iv[0]+1;
  274.         $fv = `polySelectConstraint -q -db`;
  275.         $fv2 = `polySelectConstraint -q -dp`;
  276.         $fv3 = `polySelectConstraint -q -da`;
  277.  
  278.         if ($vtxExist) {
  279.             radioButtonGrp -e -sl $iv[0] PolyVDistRadio;
  280.             floatSliderGrp -e -v $fv[0] minVDistSld;
  281.             floatSliderGrp -e -v $fv[1] maxVDistSld;
  282.             floatSliderGrp -e -v $fv2[0] pntVDistPxSld;
  283.             floatSliderGrp -e -v $fv2[1] pntVDistPySld;
  284.             floatSliderGrp -e -v $fv2[2] pntVDistPzSld;
  285.             floatSliderGrp -e -v $fv3[0] pntVDistVxSld;
  286.             floatSliderGrp -e -v $fv3[1] pntVDistVySld;
  287.             floatSliderGrp -e -v $fv3[2] pntVDistVzSld;
  288.         }
  289.         if ($edgExist) {
  290.             radioButtonGrp -e -sl $iv[0] PolyEDistRadio;
  291.             floatSliderGrp -e -v $fv[0] minEDistSld;
  292.             floatSliderGrp -e -v $fv[1] maxEDistSld;
  293.             floatSliderGrp -e -v $fv2[0] pntEDistPxSld;
  294.             floatSliderGrp -e -v $fv2[1] pntEDistPySld;
  295.             floatSliderGrp -e -v $fv2[2] pntEDistPzSld;
  296.             floatSliderGrp -e -v $fv3[0] pntEDistVxSld;
  297.             floatSliderGrp -e -v $fv3[1] pntEDistVySld;
  298.             floatSliderGrp -e -v $fv3[2] pntEDistVzSld;
  299.         }
  300.         if ($facExist) {
  301.             radioButtonGrp -e -sl $iv[0] PolyFDistRadio;
  302.             floatSliderGrp -e -v $fv[0] minFDistSld;
  303.             floatSliderGrp -e -v $fv[1] maxFDistSld;
  304.             floatSliderGrp -e -v $fv2[0] pntFDistPxSld;
  305.             floatSliderGrp -e -v $fv2[1] pntFDistPySld;
  306.             floatSliderGrp -e -v $fv2[2] pntFDistPzSld;
  307.             floatSliderGrp -e -v $fv3[0] pntFDistVxSld;
  308.             floatSliderGrp -e -v $fv3[1] pntFDistVySld;
  309.             floatSliderGrp -e -v $fv3[2] pntFDistVzSld;
  310.         }
  311.         if ($mapExist) {
  312.             radioButtonGrp -e -sl $iv[0] PolyMDistRadio;
  313.             floatSliderGrp -e -v $fv[0] minMDistSld;
  314.             floatSliderGrp -e -v $fv[1] maxMDistSld;
  315.             floatSliderGrp -e -v $fv2[0] pntMDistPxSld;
  316.             floatSliderGrp -e -v $fv2[1] pntMDistPySld;
  317.             floatSliderGrp -e -v $fv2[2] pntMDistPzSld;
  318.             floatSliderGrp -e -v $fv3[0] pntMDistVxSld;
  319.             floatSliderGrp -e -v $fv3[1] pntMDistVySld;
  320.             floatSliderGrp -e -v $fv3[2] pntMDistVzSld;
  321.         }
  322.     
  323.     }
  324.     //Orientation
  325.     if ($itemType[0] == 0x0001 ||
  326.         $itemType[0] == 0x8000 ||
  327.         $itemType[0] == 0x0008) {
  328.         
  329.         $iv = `polySelectConstraint -q -o`;
  330.         $iv[0] = $iv[0]+1;
  331.         $fv = `polySelectConstraint -q -ob`;
  332.         $fv2 = `polySelectConstraint -q -oa`;
  333.  
  334.         if ($vtxExist) {
  335.             radioButtonGrp -e -sl $iv[0] PolyVOriRadio;
  336.             floatSliderGrp -e -v $fv[0] minVOriSld;
  337.             floatSliderGrp -e -v $fv[1] maxVOriSld;
  338.             floatSliderGrp -e -v $fv2[0] pntVOriVxSld;
  339.             floatSliderGrp -e -v $fv2[1] pntVOriVySld;
  340.             floatSliderGrp -e -v $fv2[2] pntVOriVzSld;
  341.         }
  342.         if ($edgExist) {
  343.             radioButtonGrp -e -sl $iv[0] PolyEOriRadio;
  344.             floatSliderGrp -e -v $fv[0] minEOriSld;
  345.             floatSliderGrp -e -v $fv[1] maxEOriSld;
  346.             floatSliderGrp -e -v $fv2[0] pntEOriVxSld;
  347.             floatSliderGrp -e -v $fv2[1] pntEOriVySld;
  348.             floatSliderGrp -e -v $fv2[2] pntEOriVzSld;
  349.         }
  350.         if ($facExist) {
  351.             radioButtonGrp -e -sl $iv[0] PolyFOriRadio;
  352.             floatSliderGrp -e -v $fv[0] minFOriSld;
  353.             floatSliderGrp -e -v $fv[1] maxFOriSld;
  354.             floatSliderGrp -e -v $fv2[0] pntFOriVxSld;
  355.             floatSliderGrp -e -v $fv2[1] pntFOriVySld;
  356.             floatSliderGrp -e -v $fv2[2] pntFOriVzSld;
  357.         }
  358.     }
  359.     
  360.     //Order
  361.     if ($itemType[0] == 0x0001 ||
  362.         $itemType[0] == 0x0010) {
  363.         
  364.         $iv = `polySelectConstraint -q -or`;
  365.         $iv2 = `polySelectConstraint -q -orb`;
  366.  
  367.         if ($vtxExist) {
  368.             checkBox -e -v $iv[0] polyVOrderCheck;
  369.             intSliderGrp -e -v $iv2[0] minVOrderSld;
  370.             intSliderGrp -e -v $iv2[1] maxVOrderSld;
  371.         }
  372.         if ($mapExist) {
  373.             checkBox -e -v $iv[0] polyMOrderCheck;
  374.             intSliderGrp -e -v $iv2[0] minMOrderSld;
  375.             intSliderGrp -e -v $iv2[1] maxMOrderSld;
  376.         }
  377.     }
  378.     
  379.     //Visibility
  380.     if ($itemType[0] == 0x0001 ||
  381.         $itemType[0] == 0x8000 ||
  382.         $itemType[0] == 0x0008) {
  383.         
  384.         $iv = `polySelectConstraint -q -v`;
  385.         $fv = `polySelectConstraint -q -va`;
  386.         $fv2 = `polySelectConstraint -q -vp`;
  387.  
  388.         if ($vtxExist) {
  389.             checkBox -e -v $iv[0] polyVVisiCheck;
  390.             floatSliderGrp -e -v $fv[0] visiVAngSld;
  391.             floatSliderGrp -e -v $fv2[0] pntVVisiPxSld;
  392.             floatSliderGrp -e -v $fv2[1] pntVVisiPySld;
  393.             floatSliderGrp -e -v $fv2[2] pntVVisiPzSld;
  394.         }
  395.         if ($edgExist) {
  396.             checkBox -e -v $iv[0] polyEVisiCheck;
  397.             floatSliderGrp -e -v $fv[0] visiEAngSld;
  398.             floatSliderGrp -e -v $fv2[0] pntEVisiPxSld;
  399.             floatSliderGrp -e -v $fv2[1] pntEVisiPySld;
  400.             floatSliderGrp -e -v $fv2[2] pntEVisiPzSld;
  401.         }
  402.         if ($facExist) {
  403.             checkBox -e -v $iv[0] polyFVisiCheck;
  404.             floatSliderGrp -e -v $fv[0] visiFAngSld;
  405.             floatSliderGrp -e -v $fv2[0] pntFVisiPxSld;
  406.             floatSliderGrp -e -v $fv2[1] pntFVisiPySld;
  407.             floatSliderGrp -e -v $fv2[2] pntFVisiPzSld;
  408.         }
  409.     }
  410.     
  411.     //random
  412.     if ($itemType[0] == 0x0001 ||
  413.         $itemType[0] == 0x8000 ||
  414.         $itemType[0] == 0x0008 ||
  415.         $itemType[0] == 0x0010) {
  416.         
  417.         $iv = `polySelectConstraint -q -r`;
  418.         $fv = `polySelectConstraint -q -rr`;
  419.         
  420.         if ($vtxExist) {
  421.             checkBox -e -v $iv[0] polyVRdmCheck;
  422.             floatSliderGrp -e -v $fv[0] rdmVRatSld;
  423.         }
  424.         if ($edgExist) {
  425.             checkBox -e -v $iv[0] polyERdmCheck;
  426.             floatSliderGrp -e -v $fv[0] rdmERatSld;
  427.         }
  428.         if ($facExist) {
  429.             checkBox -e -v $iv[0] polyFRdmCheck;
  430.             floatSliderGrp -e -v $fv[0] rdmFRatSld;
  431.         }
  432.         if ($mapExist) {
  433.             checkBox -e -v $iv[0] polyMRdmCheck;
  434.             floatSliderGrp -e -v $fv[0] rdmMRatSld;
  435.         }
  436.     }
  437.     
  438.     // Rename window if tear-off
  439.     $isTearOff = `scriptedPanel -q -to $whichPanel`;
  440.     if ($isTearOff) {
  441.         string $fullName = `scriptedPanel -q -ctl $whichPanel`;
  442.         string $buffer[];
  443.         $numTokens = `tokenize $fullName "|" $buffer`;
  444.         if ($itemType[0] == 0x0001)
  445.             window -e -title "Polygon Selection Constraint on Vertices" $buffer[0];
  446.         else if ($itemType[0] == 0x8000)
  447.             window -e -title "Polygon Selection Constraint on Edges" $buffer[0];
  448.         else if ($itemType[0] == 0x0008)
  449.             window -e -title "Polygon Selection Constraint on Faces" $buffer[0];
  450.         else if ($itemType[0] == 0x0010)
  451.             window -e -title "Polygon Selection Constraint on Texture offsets" $buffer[0];
  452.         else
  453.             window -e -title "Polygon Selection Constraint" $buffer[0];
  454.     }
  455.     
  456.     // Show current component frame
  457.     if ($itemType[0] == 0x0001)
  458.         frameLayout -e -vis true $vtxLayoutName;
  459.     else if ($itemType[0] == 0x8000)
  460.         frameLayout -e -vis true $edgLayoutName;
  461.     else if ($itemType[0] == 0x0008)
  462.         frameLayout -e -vis true $facLayoutName;
  463.     else if ($itemType[0] == 0x0010)
  464.         frameLayout -e -vis true $mapLayoutName;
  465.     waitCursor -state off ;
  466. }
  467.  
  468. // Create vertex layout
  469. ///////////////////////////////////////////////////////////////////////
  470. global proc polygonConstraintVtx(
  471. string $vtxLayoutName,
  472. string $scrollFormName)
  473. {
  474.     setParent $scrollFormName;
  475.     setUITemplate -pushTemplate DefaultTemplate;
  476.     formLayout -e -vis false $scrollFormName;
  477.     $widgetList =
  478.         `frameLayout -vis false -cl false -cll false -lv false $vtxLayoutName`;
  479.     columnLayout -adj true -cal left colF;
  480.  
  481.     formLayout -e
  482.         -af $vtxLayoutName bottom 0 
  483.         -af $vtxLayoutName right  0 
  484.         -af $vtxLayoutName left  0 
  485.         -af $vtxLayoutName top 0 
  486.         $scrollFormName;
  487.  
  488. // Vertex Properties
  489. //-----------------------------------------------------------------------
  490.     frameLayout -borderVisible true -collapsable true -collapse false 
  491.         -label "Properties" polyVPropGrp;
  492.     columnLayout -adj true -cal left colF;
  493.     
  494.     radioButtonGrp -l "Location" -numberOfRadioButtons 3
  495.         -cw 1 80 -cw 2 70 //-cw 3 130 -cw 4 130
  496.         -label1 "Off"
  497.         -on1 "polySelectConstraint -w 0"
  498.         -label2 "OnBorder"
  499.         -on2 "polySelectConstraint -w 1"
  500.         -label3 "Inside"
  501.         -on3 "polySelectConstraint -w 2"
  502.         PolyVLocRadio;
  503.     
  504.     setParent ..;
  505.     setParent ..;
  506. // Vertex Geometry
  507. //-----------------------------------------------------------------------
  508.     frameLayout -borderVisible true -collapsable true -collapse true
  509.         -l "Geometry" polyVGeomGrp;
  510.     columnLayout -adj true -cal left colF;
  511. // Vertex Order
  512. //-----------------------------------------------------------------------
  513.     frameLayout -borderVisible true -collapsable true -collapse false 
  514.         -l "Neighbors" polyVOrdGrp;
  515.     columnLayout -adj true -cal left colF;
  516.             
  517.     checkBox -l "Activate"
  518.         -onc "polySelectConstraint -or true"
  519.         -ofc "polySelectConstraint -or false"
  520.         polyVOrderCheck;
  521.             
  522.     intSliderGrp -field true -l "Min"
  523.         -cw 1 90 -min 0 -max 10 -fmx 255
  524.         -cc "int $iv[] = `polySelectConstraint -q -orb`;polySelectConstraint -orb #1 $iv[1]"
  525.         minVOrderSld;
  526.     intSliderGrp -field true -l "Max"
  527.         -cw 1 90 -min 0 -max 10 -fmx 255
  528.         -cc "int $iv[] = `polySelectConstraint -q -orb`;polySelectConstraint -orb $iv[0] #1"
  529.         maxVOrderSld;
  530.             
  531.     setParent ..;
  532.     setParent ..;
  533. // Vertex Angle
  534. //-----------------------------------------------------------------------
  535.     frameLayout -borderVisible true -collapsable true -collapse true
  536.         -l "Angle" polyVAngGrp;
  537.     columnLayout -adj true -cal left colF;
  538.  
  539.     checkBox -l "Activate"
  540.         -onc "polySelectConstraint -a true"
  541.         -ofc "polySelectConstraint -a false"
  542.         polyVAngCheck;
  543.  
  544.     floatSliderGrp -field true -l "Min"
  545.         -cw 1 90 -min 0 -max 360
  546.         -cc "float $fv[] = `polySelectConstraint -q -ab`;polySelectConstraint -ab #1 $fv[1]"
  547.         minVAngSld;
  548.     floatSliderGrp -field true -l "Max" 
  549.         -cw 1 90 -min 0 -max 360
  550.         -cc "float $fv[] = `polySelectConstraint -q -ab`;polySelectConstraint -ab $fv[0] #1"
  551.         maxVAngSld;
  552.     
  553.     setParent ..;
  554.     setParent ..;
  555. // Vertex Mapped Area
  556. //-----------------------------------------------------------------------
  557.     frameLayout -borderVisible true -collapsable true -collapse true
  558.         -l "Mapped Area" polyV2dAreaGrp;
  559.     columnLayout -adj true -cal left colF;
  560.             
  561.     radioButtonGrp -l "" -numberOfRadioButtons 3
  562.         -cw 1 1 -cw 2 89 -cw 3 100// -cw 4 100
  563.         -label1 "Off"
  564.         -on1 "polySelectConstraint -ta 0"
  565.         -label2 "Unsigned"
  566.         -on2 "polySelectConstraint -ta 1"
  567.         -label3 "Signed"
  568.         -on3 "polySelectConstraint -ta 2"
  569.         polyVArea2Radio;
  570.  
  571.     floatSliderGrp -field true -l "Min"
  572.         -cw 1 90 -fmn -999 -fmx 999 -min 0 -max 10
  573.         -cc "float $fv[] = `polySelectConstraint -q -tab`;polySelectConstraint -tab #1 $fv[1]"
  574.         minVArea2Sld;
  575.     floatSliderGrp -field true -l "Max"
  576.         -cw 1 90 -fmn -999 -fmx 999 -min 0 -max 10
  577.         -cc "float $fv[] = `polySelectConstraint -q -tab`;polySelectConstraint -tab $fv[0] #1"
  578.         maxVArea2Sld;
  579.             
  580.     setParent ..;
  581.     setParent ..;
  582. // Vertex Distance        
  583. //-----------------------------------------------------------------------
  584.     frameLayout -borderVisible true -collapsable true -collapse true
  585.         -l "Distance" polyVDistGrp;
  586.     columnLayout -adj true -cal left colF;
  587.             
  588.     radioButtonGrp -l "" -numberOfRadioButtons 4
  589.         -cw 1 1 -cw 2 89 -cw 3 100// -cw 4 100 -cw 5 100
  590.         -label1 "Off"
  591.         -on1 "polySelectConstraint -d 0"
  592.         -label2 "Point"
  593.         -on2 "polySelectConstraint -d 1"
  594.         -label3 "Axis"
  595.         -on3 "polySelectConstraint -d 2"
  596.         -label4 "Plane"
  597.         -on4 "polySelectConstraint -d 3"
  598.         PolyVDistRadio;
  599.  
  600.     floatSliderGrp -field true -l "Min"
  601.         -cw 1 90 -min 0 -max 100
  602.         -cc "float $fv[] = `polySelectConstraint -q -db`;polySelectConstraint -db #1 $fv[1]"
  603.         minVDistSld;
  604.     floatSliderGrp -field true -l "Max" 
  605.         -cw 1 90 -min 0 -max 100
  606.         -cc "float $fv[] = `polySelectConstraint -q -db`;polySelectConstraint -db $fv[0] #1"
  607.         maxVDistSld;
  608.             
  609.     floatSliderGrp -field true -l "Px"
  610.         -cw 1 90 -min -1000 -max 1000 -pre 2
  611.         -cc "float $fv[] = `polySelectConstraint -q -dp`;polySelectConstraint -dp #1 $fv[1] $fv[2]"
  612.         pntVDistPxSld;
  613.     floatSliderGrp -field true -l "Py"
  614.         -cw 1 90 -min -1000 -max 1000 -pre 2
  615.         -cc "float $fv[] = `polySelectConstraint -q -dp`;polySelectConstraint -dp $fv[0] #1 $fv[2]"
  616.         pntVDistPySld;
  617.     floatSliderGrp -field true -l "Pz"
  618.         -cw 1 90 -min -1000 -max 1000 -pre 2
  619.         -cc "float $fv[] = `polySelectConstraint -q -dp`;polySelectConstraint -dp $fv[0] $fv[1] #1"
  620.         pntVDistPzSld;
  621.             
  622.     floatSliderGrp -field true -l "Vx"
  623.         -cw 1 90 -min -100 -max 100 -pre 2
  624.         -cc "float $fv[] = `polySelectConstraint -q -da`;polySelectConstraint -da #1 $fv[1] $fv[2]"
  625.         pntVDistVxSld;
  626.     floatSliderGrp -field true -l "Vy"
  627.         -cw 1 90 -min -100 -max 100 -pre 2
  628.         -cc "float $fv[] = `polySelectConstraint -q -da`;polySelectConstraint -da $fv[0] #1 $fv[2]"
  629.         pntVDistVySld;
  630.     floatSliderGrp -field true -l "Vz"
  631.         -cw 1 90 -min -100 -max 100 -pre 2
  632.         -cc "float $fv[] = `polySelectConstraint -q -da`;polySelectConstraint -da $fv[0] $fv[1] #1"
  633.         pntVDistVzSld;
  634.             
  635.     setParent ..;
  636.     setParent ..;
  637. // Vertex Orientation
  638. //-----------------------------------------------------------------------
  639.     frameLayout -borderVisible true -collapsable true -collapse true
  640.         -l "Orientation" polyVOriGrp;
  641.     columnLayout -adj true -cal left colF;
  642.             
  643.     radioButtonGrp -l "" -numberOfRadioButtons 3
  644.         -cw 1 1 -cw 2 89 -cw 3 100 //-cw 4 100
  645.         -label1 "Off"
  646.         -on1 "polySelectConstraint -o 0"
  647.         -label2 "Orientation"
  648.         -on2 "polySelectConstraint -o 1"
  649.         -label3 "Direction"
  650.         -on3 "polySelectConstraint -o 2"
  651.         PolyVOriRadio;
  652.  
  653.     floatSliderGrp -field true -l "Min"
  654.         -cw 1 90 -min 0 -max 360
  655.         -cc "float $fv[] = `polySelectConstraint -q -ob`;polySelectConstraint -ob #1 $fv[1]"
  656.         minVOriSld;
  657.     floatSliderGrp -field true -l "Max"
  658.         -cw 1 90 -min 0 -max 360
  659.         -cc "float $fv[] = `polySelectConstraint -q -ob`;polySelectConstraint -ob $fv[0] #1"
  660.         maxVOriSld;
  661.             
  662.     floatSliderGrp -field true -l "Vx"
  663.         -cw 1 90 -min -100 -max 100 -pre 2
  664.         -cc "float $fv[] = `polySelectConstraint -q -oa`;polySelectConstraint -oa #1 $fv[1] $fv[2]"
  665.         pntVOriVxSld;
  666.     floatSliderGrp -field true -l "Vy"
  667.         -cw 1 90 -min -100 -max 100 -pre 2
  668.         -cc "float $fv[] = `polySelectConstraint -q -oa`;polySelectConstraint -oa $fv[0] #1 $fv[2]"
  669.         pntVOriVySld;
  670.     floatSliderGrp -field true -l "Vz"
  671.         -cw 1 90 -min -100 -max 100 -pre 2
  672.         -cc "float $fv[] = `polySelectConstraint -q -oa`;polySelectConstraint -oa $fv[0] $fv[1] #1"
  673.         pntVOriVzSld;
  674.             
  675.     setParent ..;
  676.     setParent ..;
  677. // Vertex Visibility
  678. //-----------------------------------------------------------------------
  679.     frameLayout -borderVisible true -collapsable true -collapse true
  680.         -l "Visibility" polyVVisiGrp;
  681.     columnLayout -adj true -cal left colF;
  682.             
  683.     checkBox -l "Activate"
  684.         -onc "polySelectConstraint -v true"
  685.         -ofc "polySelectConstraint -v false"
  686.         polyVVisiCheck;
  687.             
  688.     floatSliderGrp -field true -l "Angle"
  689.         -cw 1 90 -min 0 -max 360
  690.         -cc "polySelectConstraint -va #1"
  691.         visiVAngSld;
  692.  
  693.     floatSliderGrp -field true -l "Px"
  694.         -cw 1 90 -min -1000 -max 1000 -pre 2
  695.         -cc "float $fv[] = `polySelectConstraint -q -vp`;polySelectConstraint -vp #1 $fv[1] $fv[2]"
  696.         pntVVisiPxSld;
  697.     floatSliderGrp -field true -l "Py"
  698.         -cw 1 90 -min -1000 -max 1000 -pre 2
  699.         -cc "float $fv[] = `polySelectConstraint -q -vp`;polySelectConstraint -vp $fv[0] #1 $fv[2]"
  700.         pntVVisiPySld;
  701.     floatSliderGrp -field true -l "Pz"
  702.         -cw 1 90 -min -1000 -max 1000 -pre 2
  703.         -cc "float $fv[] = `polySelectConstraint -q -vp`;polySelectConstraint -vp $fv[0] $fv[1] #1"
  704.         pntVVisiPzSld;
  705.             
  706.     setParent ..;
  707.     setParent ..;
  708.     
  709.     setParent ..;    // end vtx geom column
  710.     setParent ..;    // end vtx geom frame
  711. // Vertex Random
  712. //-----------------------------------------------------------------------
  713.     frameLayout -borderVisible true -collapsable true -collapse false 
  714.         -l "Random" polyVRdmGrp;
  715.     columnLayout -adj true -cal left colF;
  716.             
  717.     checkBox -l "Activate"
  718.         -onc "polySelectConstraint -r true"
  719.         -ofc "polySelectConstraint -r false"
  720.         polyVRdmCheck;
  721.             
  722.     floatSliderGrp -field true -l "Ratio"
  723.         -cw 1 90 -min 0 -max 1
  724.         -cc "polySelectConstraint -rr #1"
  725.         rdmVRatSld;
  726.  
  727.     setParent ..;
  728.     setParent ..;
  729.     
  730.     setParent ..; // end vtx column
  731.     setParent ..; // end vtx frame
  732.     setUITemplate -popTemplate;
  733.     formLayout -e -vis true $scrollFormName;
  734. }
  735.  
  736. // Create edge layout
  737. ///////////////////////////////////////////////////////////////////////
  738. global proc polygonConstraintEdg(
  739. string $edgLayoutName,
  740. string $scrollFormName)
  741. {
  742.     setParent $scrollFormName;
  743.     setUITemplate -pushTemplate DefaultTemplate;
  744.     formLayout -e -vis false $scrollFormName;
  745.     $widgetList =
  746.         `frameLayout -vis false -cl false -cll false -lv false $edgLayoutName`;
  747.     columnLayout -adj true -cal left colF;
  748.     
  749.     formLayout -e
  750.         -af $edgLayoutName bottom 0 
  751.         -af $edgLayoutName right  0 
  752.         -af $edgLayoutName left  0 
  753.         -af $edgLayoutName top 0 
  754.         $scrollFormName;
  755.     
  756. // Edge Properties
  757. //-----------------------------------------------------------------------
  758.     frameLayout -borderVisible true -collapsable true -collapse false 
  759.         -l "Properties" polyEPropGrp;
  760.     columnLayout -adj true -cal left colF;
  761.     
  762.     radioButtonGrp -l "Location" -numberOfRadioButtons 3
  763.         -cw 1 80 -cw 2 70 //-cw 3 130 -cw 4 130
  764.         -label1 "Off"
  765.         -on1 "polySelectConstraint -w 0"
  766.         -label2 "OnBorder"
  767.         -on2 "polySelectConstraint -w 1"
  768.         -label3 "Inside"
  769.         -on3 "polySelectConstraint -w 2"
  770.         PolyELocRadio;
  771.  
  772.     radioButtonGrp -l "Smoothing" -numberOfRadioButtons 3
  773.         -cw 1 80 -cw 2 70 //-cw 3 130 -cw 4 130
  774.         -label1 "Off"
  775.         -on1 "polySelectConstraint -sm 0"
  776.         -label2 "Hard"
  777.         -on2 "polySelectConstraint -sm 1"
  778.         -label3 "Smooth"
  779.         -on3 "polySelectConstraint -sm 2"
  780.         PolyESmtRadio;
  781.     
  782.     setParent ..;
  783.     setParent ..;
  784. // Edge Geometry
  785. //-----------------------------------------------------------------------
  786.     frameLayout -borderVisible true -collapsable true -collapse true
  787.         -l "Geometry" polyEGeomGrp;
  788.     columnLayout -adj true -cal left colF;    
  789. // Edge Length
  790. //-----------------------------------------------------------------------
  791.     frameLayout -borderVisible true -collapsable true -collapse false
  792.         -l "Length" polyELenGrp;
  793.     columnLayout -adj true -cal left colF;
  794.             
  795.     checkBox -l "Activate"
  796.         -onc "polySelectConstraint -l true"
  797.         -ofc "polySelectConstraint -l false"
  798.         polyELenCheck;
  799.             
  800.     floatSliderGrp -field true -l "Min"
  801.         -cw 1 90 -min 0 -max 100
  802.         -cc "float $fv[] = `polySelectConstraint -q -lb`;polySelectConstraint -lb #1 $fv[1]"
  803.         minELenSld;
  804.     floatSliderGrp -field true -l "Max"
  805.         -cw 1 90 -min 0 -max 100
  806.         -cc "float $fv[] = `polySelectConstraint -q -lb`;polySelectConstraint -lb $fv[0] #1"
  807.         maxELenSld;
  808.             
  809.     setParent ..;
  810.     setParent ..;
  811. // Edge Angle
  812. //-----------------------------------------------------------------------
  813.     frameLayout -borderVisible true -collapsable true -collapse true
  814.         -l "Angle" polyEAngGrp;
  815.     columnLayout -adj true -cal left colF;
  816.  
  817.     checkBox -l "Activate"
  818.         -onc "polySelectConstraint -a true"
  819.         -ofc "polySelectConstraint -a false"
  820.         polyEAngCheck;
  821.  
  822.     floatSliderGrp -field true -l "Min"
  823.         -cw 1 90 -min 0 -max 360
  824.         -cc "float $fv[] = `polySelectConstraint -q -ab`;polySelectConstraint -ab #1 $fv[1]"
  825.         minEAngSld;
  826.     floatSliderGrp -field true -l "Max"
  827.         -cw 1 90 -min 0 -max 360
  828.         -cc "float $fv[] = `polySelectConstraint -q -ab`;polySelectConstraint -ab $fv[0] #1"
  829.         maxEAngSld;
  830.             
  831.     setParent ..;
  832.     setParent ..;
  833. // Edge Mapped Area
  834. //-----------------------------------------------------------------------
  835.     frameLayout -borderVisible true -collapsable true -collapse true
  836.         -l "Mapped Area" polyE2dAreaGrp;
  837.     columnLayout -adj true -cal left colF;
  838.             
  839.     radioButtonGrp -l "" -numberOfRadioButtons 3
  840.         -cw 1 1 -cw 2 89 -cw 3 100// -cw 4 100
  841.         -label1 "Off"
  842.         -on1 "polySelectConstraint -ta 0"
  843.         -label2 "Unsigned"
  844.         -on2 "polySelectConstraint -ta 1"
  845.         -label3 "Signed"
  846.         -on3 "polySelectConstraint -ta 2"
  847.         polyEArea2Radio;
  848.  
  849.     floatSliderGrp -field true -l "Min"
  850.         -cw 1 90 -fmn -999 -fmx 999 -min 0 -max 10
  851.         -cc "float $fv[] = `polySelectConstraint -q -tab`;polySelectConstraint -tab #1 $fv[1]"
  852.         minEArea2Sld;
  853.     floatSliderGrp -field true -l "Max"
  854.         -cw 1 90 -fmn -999 -fmx 999 -min 0 -max 10
  855.         -cc "float $fv[] = `polySelectConstraint -q -tab`;polySelectConstraint -tab $fv[0] #1"
  856.         maxEArea2Sld;
  857.             
  858.     setParent ..;
  859.     setParent ..;
  860. // Edge Distance
  861. //-----------------------------------------------------------------------
  862.     frameLayout -borderVisible true -collapsable true -collapse true
  863.         -l "Distance" polyEDistGrp;
  864.     columnLayout -adj true -cal left colF;
  865.             
  866.     radioButtonGrp -l "" -numberOfRadioButtons 4
  867.         -cw 1 1 -cw 2 89 -cw 3 100// -cw 4 100 -cw 5 100
  868.         -label1 "Off"
  869.         -on1 "polySelectConstraint -d 0"
  870.         -label2 "Point"
  871.         -on2 "polySelectConstraint -d 1"
  872.         -label3 "Axis"
  873.         -on3 "polySelectConstraint -d 2"
  874.         -label4 "Plane"
  875.         -on4 "polySelectConstraint -d 3"
  876.         PolyEDistRadio;
  877.  
  878.     floatSliderGrp -field true -l "Min"
  879.         -cw 1 90 -min 0 -max 100
  880.         -cc "float $fv[] = `polySelectConstraint -q -db`;polySelectConstraint -db #1 $fv[1]"
  881.         minEDistSld;
  882.     floatSliderGrp -field true -l "Max"
  883.         -cw 1 90 -min 0 -max 100
  884.         -cc "float $fv[] = `polySelectConstraint -q -db`;polySelectConstraint -db $fv[0] #1"
  885.         maxEDistSld;
  886.             
  887.     floatSliderGrp -field true -l "Px"
  888.         -cw 1 90 -min -1000 -max 1000 -pre 2
  889.         -cc "float $fv[] = `polySelectConstraint -q -dp`;polySelectConstraint -dp #1 $fv[1] $fv[2]"
  890.         pntEDistPxSld;
  891.     floatSliderGrp -field true -l "Py"
  892.         -cw 1 90 -min -1000 -max 1000 -pre 2
  893.         -cc "float $fv[] = `polySelectConstraint -q -dp`;polySelectConstraint -dp $fv[0] #1 $fv[2]"
  894.         pntEDistPySld;
  895.     floatSliderGrp -field true -l "Pz"
  896.         -cw 1 90 -min -1000 -max 1000 -pre 2
  897.         -cc "float $fv[] = `polySelectConstraint -q -dp`;polySelectConstraint -dp $fv[0] $fv[1] #1"
  898.         pntEDistPzSld;
  899.             
  900.     floatSliderGrp -field true -l "Vx"
  901.         -cw 1 90 -min -100 -max 100 -pre 2
  902.         -cc "float $fv[] = `polySelectConstraint -q -da`;polySelectConstraint -da #1 $fv[1] $fv[2]"
  903.         pntEDistVxSld;
  904.     floatSliderGrp -field true -l "Vy"
  905.         -cw 1 90 -min -100 -max 100 -pre 2
  906.         -cc "float $fv[] = `polySelectConstraint -q -da`;polySelectConstraint -da $fv[0] #1 $fv[2]"
  907.         pntEDistVySld;
  908.     floatSliderGrp -field true -l "Vz"
  909.         -cw 1 90 -min -100 -max 100 -pre 2
  910.         -cc "float $fv[] = `polySelectConstraint -q -da`;polySelectConstraint -da $fv[0] $fv[1] #1"
  911.         pntEDistVzSld;
  912.             
  913.     setParent ..;
  914.     setParent ..;
  915. // Edge Orientation
  916. //-----------------------------------------------------------------------
  917.     frameLayout -borderVisible true -collapsable true -collapse true
  918.         -l "Orientation" polyEOriGrp;
  919.     columnLayout -adj true -cal left colF;
  920.             
  921.     radioButtonGrp -l "" -numberOfRadioButtons 3
  922.         -cw 1 1 -cw 2 89 -cw 3 100// -cw 4 100
  923.         -label1 "Off"
  924.         -on1 "polySelectConstraint -o 0"
  925.         -label2 "Orientation"
  926.         -on2 "polySelectConstraint -o 1"
  927.         -label3 "Direction"
  928.         -on3 "polySelectConstraint -o 2"
  929.         PolyEOriRadio;
  930.  
  931.     floatSliderGrp -field true -l "Min"
  932.         -cw 1 90 -min 0 -max 360
  933.         -cc "float $fv[] = `polySelectConstraint -q -ob`;polySelectConstraint -ob #1 $fv[1]"
  934.         minEOriSld;
  935.     floatSliderGrp -field true -l "Max"
  936.         -cw 1 90 -min 0 -max 360
  937.         -cc "float $fv[] = `polySelectConstraint -q -ob`;polySelectConstraint -ob $fv[0] #1"
  938.         maxEOriSld;
  939.             
  940.     floatSliderGrp -field true -l "Vx"
  941.         -cw 1 90 -min -100 -max 100 -pre 2
  942.         -cc "float $fv[] = `polySelectConstraint -q -oa`;polySelectConstraint -oa #1 $fv[1] $fv[2]"
  943.         pntEOriVxSld;
  944.     floatSliderGrp -field true -l "Vy"
  945.         -cw 1 90 -min -100 -max 100 -pre 2
  946.         -cc "float $fv[] = `polySelectConstraint -q -oa`;polySelectConstraint -oa $fv[0] #1 $fv[2]"
  947.         pntEOriVySld;
  948.     floatSliderGrp -field true -l "Vz"
  949.         -cw 1 90 -min -100 -max 100 -pre 2
  950.         -cc "float $fv[] = `polySelectConstraint -q -oa`;polySelectConstraint -oa $fv[0] $fv[1] #1"
  951.         pntEOriVzSld;
  952.             
  953.     setParent ..;
  954.     setParent ..;
  955. // Edge Visibility
  956. //-----------------------------------------------------------------------
  957.     frameLayout -borderVisible true -collapsable true -collapse true
  958.         -l "Visibility" polyEVisiGrp;
  959.     columnLayout -adj true -cal left colF;
  960.             
  961.     checkBox -l "Activate"
  962.         -onc "polySelectConstraint -v true"
  963.         -ofc "polySelectConstraint -v false"
  964.         polyEVisiCheck;
  965.             
  966.     floatSliderGrp -field true -l "Angle"
  967.         -cw 1 90 -min 0 -max 360
  968.         -cc "polySelectConstraint -va #1"
  969.         visiEAngSld;
  970.  
  971.     floatSliderGrp -field true -l "Px"
  972.         -cw 1 90 -min -1000 -max 1000 -pre 2
  973.         -cc "float $fv[] = `polySelectConstraint -q -vp`;polySelectConstraint -vp #1 $fv[1] $fv[2]"
  974.         pntEVisiPxSld;
  975.     floatSliderGrp -field true -l "Py"
  976.         -cw 1 90 -min -1000 -max 1000 -pre 2
  977.         -cc "float $fv[] = `polySelectConstraint -q -vp`;polySelectConstraint -vp $fv[0] #1 $fv[2]"
  978.         pntEVisiPySld;
  979.     floatSliderGrp -field true -l "Pz"
  980.         -cw 1 90 -min -1000 -max 1000 -pre 2
  981.         -cc "float $fv[] = `polySelectConstraint -q -vp`;polySelectConstraint -vp $fv[0] $fv[1] #1"
  982.         pntEVisiPzSld;
  983.             
  984.     setParent ..;
  985.     setParent ..;
  986.     
  987.     setParent ..;    // end edg geom column
  988.     setParent ..;    // end edg geom frame
  989. // Edge Random
  990. //-----------------------------------------------------------------------
  991.     frameLayout -borderVisible true -collapsable true -collapse false 
  992.         -l "Random" polyERdmGrp;
  993.     columnLayout -adj true -cal left colF;
  994.             
  995.     checkBox -l "Activate"
  996.         -onc "polySelectConstraint -r true"
  997.         -ofc "polySelectConstraint -r false"
  998.         polyERdmCheck;
  999.             
  1000.     floatSliderGrp -field true -l "Ratio"
  1001.         -cw 1 90 -min 0 -max 1
  1002.         -cc "polySelectConstraint -rr #1"
  1003.         rdmERatSld;
  1004.  
  1005.     setParent ..;
  1006.     setParent ..;
  1007.     setUITemplate -popTemplate;
  1008.     setParent ..;    // end edge column
  1009.     setParent ..;    // end edge frame
  1010.     formLayout -e -vis true $scrollFormName;
  1011. }
  1012.  
  1013. // Create facet layout
  1014. ///////////////////////////////////////////////////////////////////////
  1015. global proc getPolyFacetTopoValue()
  1016. {
  1017.     int $dst = 0;
  1018.     
  1019.     int $src1 = `checkBoxGrp -q -v1 PolyFTopCheck`;
  1020.     int $src2 = `checkBoxGrp -q -v2 PolyFTopCheck`;
  1021.     if ($src2) // window shows cstr in reverse order
  1022.         $dst += 1;
  1023.     if ($src1)
  1024.         $dst += 2;
  1025.     polySelectConstraint -tp $dst;
  1026. }
  1027.  
  1028. global proc polygonConstraintFac(
  1029. string $facLayoutName,
  1030. string $scrollFormName)
  1031. {
  1032.     setParent $scrollFormName;
  1033.     formLayout -e -vis false $scrollFormName;
  1034.     setUITemplate -pushTemplate DefaultTemplate;
  1035.     $widgetList =
  1036.         `frameLayout -vis false -cl false -cll false -lv false $facLayoutName`;
  1037.     columnLayout -adj true -cal left colF;
  1038.     
  1039.     formLayout -e
  1040.         -af $facLayoutName bottom 0 
  1041.         -af $facLayoutName right  0 
  1042.         -af $facLayoutName left  0 
  1043.         -af $facLayoutName top 0 
  1044.         $scrollFormName;
  1045.  
  1046. // Facet Properties
  1047. //-----------------------------------------------------------------------
  1048.     frameLayout -borderVisible true -collapsable true -collapse false 
  1049.         -l "Properties" polyFPropGrp;
  1050.     columnLayout -adj true -cal left colF;
  1051.     
  1052.     radioButtonGrp -l "Location" -numberOfRadioButtons 3
  1053.         -cw 1 80 -cw 2 70 //-cw 3 140 -cw 4 130
  1054.         -label1 "Off"
  1055.         -on1 "polySelectConstraint -w 0"
  1056.         -label2 "OnBorder"
  1057.         -on2 "polySelectConstraint -w 1"
  1058.         -label3 "Inside"
  1059.         -on3 "polySelectConstraint -w 2"
  1060.         PolyFLocRadio;
  1061.  
  1062.     radioButtonGrp -l "Order" -numberOfRadioButtons 4
  1063.         -cw 1 80 -cw 2 70 //-cw 3 80 -cw 4 110
  1064.         -label1 "Off"
  1065.         -on1 "polySelectConstraint -sz 0"
  1066.         -label2 "Triangles"
  1067.         -on2 "polySelectConstraint -sz 1"
  1068.         -label3 "Quads"
  1069.         -on3 "polySelectConstraint -sz 2"
  1070.         -label4 "Nsided"
  1071.         -on4 "polySelectConstraint -sz 3"
  1072.         PolyFSizRadio;
  1073.             
  1074.     radioButtonGrp -l "Planarity" -numberOfRadioButtons 3
  1075.         -cw 1 80 -cw 2 70 //-cw 3 140 -cw 4 130
  1076.         -label1 "Off"
  1077.         -on1 "polySelectConstraint -p 0"
  1078.         -label2 "Planar"
  1079.         -on2 "polySelectConstraint -p 2"
  1080.         -label3 "Non-planar"
  1081.         -on3 "polySelectConstraint -p 1"
  1082.         PolyFPlnRadio;
  1083.             
  1084.     radioButtonGrp -l "Convexity" -numberOfRadioButtons 3
  1085.         -cw 1 80 -cw 2 70 //-cw 3 140 -cw 4 130
  1086.         -label1 "Off"
  1087.         -on1 "polySelectConstraint -c 0"
  1088.         -label2 "Concave"
  1089.         -on2 "polySelectConstraint -c 1"
  1090.         -label3 "Convex"
  1091.         -on3 "polySelectConstraint -c 2"
  1092.         PolyFCvxRadio;
  1093.             
  1094.     radioButtonGrp -l "Domains" -numberOfRadioButtons 3
  1095.         -cw 1 80 -cw 2 70 //-cw 3 140 -cw 4 130
  1096.         -label1 "Off"
  1097.         -on1 "polySelectConstraint -h 0"
  1098.         -label2 "Holed"
  1099.         -on2 "polySelectConstraint -h 1"
  1100.         -label3 "Non-holed"
  1101.         -on3 "polySelectConstraint -h 2"
  1102.         PolyFHolRadio;
  1103.     radioButtonGrp -l "Mapping" -numberOfRadioButtons 3
  1104.         -cw 1 80 -cw 2 70 //-cw 3 140 -cw 4 130
  1105.         -label1 "Off"
  1106.         -on1 "polySelectConstraint -tx 0"
  1107.         -label2 "Mapped"
  1108.         -on2 "polySelectConstraint -tx 1"
  1109.         -label3 "Unmapped"
  1110.         -on3 "polySelectConstraint -tx 2"
  1111.         PolyFMapRadio;
  1112.  
  1113.     checkBoxGrp -l "Topology" -numberOfCheckBoxes 2
  1114.         -cw 1 80 -cw 2 70 -cw 3 130
  1115.         -label1 "Lamina"
  1116.         -label2 "Non-triangulable"
  1117.         -cc "getPolyFacetTopoValue()"
  1118.         PolyFTopCheck;
  1119.  
  1120.     setParent ..;
  1121.     setParent ..;
  1122. // Facet Geometry
  1123. //-----------------------------------------------------------------------
  1124.     frameLayout -borderVisible true -collapsable true -collapse true
  1125.         -l "Geometry" polyFGeomGrp;
  1126.     columnLayout -adj true -cal left colF;
  1127. // Facet Area
  1128. //-----------------------------------------------------------------------
  1129.     frameLayout -borderVisible true -collapsable true -collapse false
  1130.         -l "Area" polyFAreaGrp;
  1131.     columnLayout -adj true -cal left colF;
  1132.  
  1133.     checkBox -l "Activate"
  1134.         -onc "polySelectConstraint -ga true"
  1135.         -ofc "polySelectConstraint -ga false"
  1136.         polyFAreaCheck;
  1137.  
  1138.     floatSliderGrp -field true -l "Min"
  1139.         -cw 1 90 -min 0.0 -max 1000.0
  1140.         -fieldMinValue 0.0 -fieldMaxValue 10000.0
  1141.         -pre 3
  1142.         -cc "float $fv[] = `polySelectConstraint -q -gab`;polySelectConstraint -gab #1 $fv[1]"
  1143.         minFAreaSld;
  1144.     floatSliderGrp -field true -l "Max"
  1145.         -cw 1 90 -min 0.0 -max 1000.0
  1146.         -fieldMinValue 0.0 -fieldMaxValue 10000.0
  1147.         -pre 3
  1148.         -cc "float $fv[] = `polySelectConstraint -q -gab`;polySelectConstraint -gab $fv[0] #1"
  1149.         maxFAreaSld;
  1150.             
  1151.     setParent ..;
  1152.     setParent ..;            
  1153. // Facet Mapped Area
  1154. //-----------------------------------------------------------------------
  1155.     frameLayout -borderVisible true -collapsable true -collapse true
  1156.         -l "Mapped Area" polyF2dAreaGrp;
  1157.     columnLayout -adj true -cal left colF;
  1158.             
  1159.     radioButtonGrp -l "" -numberOfRadioButtons 3
  1160.         -cw 1 1 -cw 2 89 -cw 3 100// -cw 4 100
  1161.         -label1 "Off"
  1162.         -on1 "polySelectConstraint -ta 0"
  1163.         -label2 "Unsigned"
  1164.         -on2 "polySelectConstraint -ta 1"
  1165.         -label3 "Signed"
  1166.         -on3 "polySelectConstraint -ta 2"
  1167.         polyFArea2Radio;
  1168.  
  1169.     floatSliderGrp -field true -l "Min"
  1170.         -cw 1 90 -fmn -999 -fmx 999 -min 0 -max 10
  1171.         -cc "float $fv[] = `polySelectConstraint -q -tab`;polySelectConstraint -tab #1 $fv[1]"
  1172.         minFArea2Sld;
  1173.     floatSliderGrp -field true -l "Max"
  1174.         -cw 1 90 -fmn -999 -fmx 999 -min 0 -max 10
  1175.         -cc "float $fv[] = `polySelectConstraint -q -tab`;polySelectConstraint -tab $fv[0] #1"
  1176.         maxFArea2Sld;
  1177.             
  1178.     setParent ..;
  1179.     setParent ..;
  1180. // Facet Distance
  1181. //-----------------------------------------------------------------------
  1182.     frameLayout -borderVisible true -collapsable true -collapse true
  1183.         -l "Distance" polyFDistGrp;
  1184.     columnLayout -adj true -cal left colF;
  1185.             
  1186.     radioButtonGrp -l "" -numberOfRadioButtons 4
  1187.         -cw 1 1 -cw 2 89 -cw 3 100// -cw 4 100 -cw 5 100
  1188.         -label1 "Off"
  1189.         -on1 "polySelectConstraint -d 0"
  1190.         -label2 "Point"
  1191.         -on2 "polySelectConstraint -d 1"
  1192.         -label3 "Axis"
  1193.         -on3 "polySelectConstraint -d 2"
  1194.         -label4 "Plane"
  1195.         -on4 "polySelectConstraint -d 3"
  1196.         PolyFDistRadio;
  1197.  
  1198.     floatSliderGrp -field true -l "Min"
  1199.         -cw 1 90 -min 0 -max 100
  1200.         -cc "float $fv[] = `polySelectConstraint -q -db`;polySelectConstraint -db #1 $fv[1]"
  1201.         minFDistSld;
  1202.     floatSliderGrp -field true -l "Max"
  1203.         -cw 1 90 -min 0 -max 100
  1204.         -cc "float $fv[] = `polySelectConstraint -q -db`;polySelectConstraint -db $fv[0] #1"
  1205.         maxFDistSld;
  1206.             
  1207.     floatSliderGrp -field true -l "Px"
  1208.         -cw 1 90 -min -1000 -max 1000 -pre 2
  1209.         -cc "float $fv[] = `polySelectConstraint -q -dp`;polySelectConstraint -dp #1 $fv[1] $fv[2]"
  1210.         pntFDistPxSld;
  1211.     floatSliderGrp -field true -l "Py"
  1212.         -cw 1 90 -min -1000 -max 1000 -pre 2
  1213.         -cc "float $fv[] = `polySelectConstraint -q -dp`;polySelectConstraint -dp $fv[0] #1 $fv[2]"
  1214.         pntFDistPySld;
  1215.     floatSliderGrp -field true -l "Pz"
  1216.         -cw 1 90 -min -1000 -max 1000 -pre 2
  1217.         -cc "float $fv[] = `polySelectConstraint -q -dp`;polySelectConstraint -dp $fv[0] $fv[1] #1"
  1218.         pntFDistPzSld;
  1219.             
  1220.     floatSliderGrp -field true -l "Vx"
  1221.         -cw 1 90 -min -100 -max 100 -pre 2
  1222.         -cc "float $fv[] = `polySelectConstraint -q -da`;polySelectConstraint -da #1 $fv[1] $fv[2]"
  1223.         pntFDistVxSld;
  1224.     floatSliderGrp -field true -l "Vy"
  1225.         -cw 1 90 -min -100 -max 100 -pre 2
  1226.         -cc "float $fv[] = `polySelectConstraint -q -da`;polySelectConstraint -da $fv[0] #1 $fv[2]"
  1227.         pntFDistVySld;
  1228.     floatSliderGrp -field true -l "Vz"
  1229.         -cw 1 90 -min -100 -max 100 -pre 2
  1230.         -cc "float $fv[] = `polySelectConstraint -q -da`;polySelectConstraint -da $fv[0] $fv[1] #1"
  1231.         pntFDistVzSld;
  1232.             
  1233.     setParent ..;
  1234.     setParent ..;
  1235. // Facet Orientation
  1236. //-----------------------------------------------------------------------
  1237.     frameLayout -borderVisible true -collapsable true -collapse true
  1238.         -l "Orientation" polyFOriGrp;
  1239.     columnLayout -adj true -cal left colF;
  1240.             
  1241.     radioButtonGrp -l "" -numberOfRadioButtons 3
  1242.         -cw 1 1 -cw 2 89 -cw 3 100// -cw 4 100
  1243.         -label1 "Off"
  1244.         -on1 "polySelectConstraint -o 0"
  1245.         -label2 "Orientation"
  1246.         -on2 "polySelectConstraint -o 1"
  1247.         -label3 "Direction"
  1248.         -on3 "polySelectConstraint -o 2"
  1249.         PolyFOriRadio;
  1250.  
  1251.     floatSliderGrp -field true -l "Min"
  1252.         -cw 1 90 -min 0 -max 360
  1253.         -cc "float $fv[] = `polySelectConstraint -q -ob`;polySelectConstraint -ob #1 $fv[1]"
  1254.         minFOriSld;
  1255.     floatSliderGrp -field true -l "Max"
  1256.         -cw 1 90 -min 0 -max 360
  1257.         -cc "float $fv[] = `polySelectConstraint -q -ob`;polySelectConstraint -ob $fv[0] #1"
  1258.         maxFOriSld;
  1259.             
  1260.     floatSliderGrp -field true -l "Vx"
  1261.         -cw 1 90 -min -100 -max 100 -pre 2
  1262.         -cc "float $fv[] = `polySelectConstraint -q -oa`;polySelectConstraint -oa #1 $fv[1] $fv[2]"
  1263.         pntFOriVxSld;
  1264.     floatSliderGrp -field true -l "Vy"
  1265.         -cw 1 90 -min -100 -max 100 -pre 2
  1266.         -cc "float $fv[] = `polySelectConstraint -q -oa`;polySelectConstraint -oa $fv[0] #1 $fv[2]"
  1267.         pntFOriVySld;
  1268.     floatSliderGrp -field true -l "Vz"
  1269.         -cw 1 90 -min -100 -max 100 -pre 2
  1270.         -cc "float $fv[] = `polySelectConstraint -q -oa`;polySelectConstraint -oa $fv[0] $fv[1] #1"
  1271.         pntFOriVzSld;
  1272.             
  1273.     setParent ..;
  1274.     setParent ..;
  1275. // Facet Visibility
  1276. //-----------------------------------------------------------------------
  1277.     frameLayout -borderVisible true -collapsable true -collapse true
  1278.         -l "Visibility" polyFVisiGrp;
  1279.     columnLayout -adj true -cal left colF;
  1280.             
  1281.     checkBox -l "Activate"
  1282.         -onc "polySelectConstraint -v true"
  1283.         -ofc "polySelectConstraint -v false"
  1284.         polyFVisiCheck;
  1285.             
  1286.     floatSliderGrp -field true -l "Angle"
  1287.         -cw 1 90 -min 0 -max 360
  1288.         -cc "polySelectConstraint -va #1"
  1289.         visiFAngSld;
  1290.  
  1291.     floatSliderGrp -field true -l "Px"
  1292.         -cw 1 90 -min -1000 -max 1000 -pre 2
  1293.         -cc "float $fv[] = `polySelectConstraint -q -vp`;polySelectConstraint -vp #1 $fv[1] $fv[2]"
  1294.         pntFVisiPxSld;
  1295.     floatSliderGrp -field true -l "Py"
  1296.         -cw 1 90 -min -1000 -max 1000 -pre 2
  1297.         -cc "float $fv[] = `polySelectConstraint -q -vp`;polySelectConstraint -vp $fv[0] #1 $fv[2]"
  1298.         pntFVisiPySld;
  1299.     floatSliderGrp -field true -l "Pz"
  1300.         -cw 1 90 -min -1000 -max 1000 -pre 2
  1301.         -cc "float $fv[] = `polySelectConstraint -q -vp`;polySelectConstraint -vp $fv[0] $fv[1] #1"
  1302.         pntFVisiPzSld;
  1303.             
  1304.     setParent ..;
  1305.     setParent ..;
  1306.     
  1307.     setParent ..;    // end fac geom column
  1308.     setParent ..;    // end fac geom frame
  1309. // Facet Random
  1310. //-----------------------------------------------------------------------
  1311.     frameLayout -borderVisible true -collapsable true -collapse false 
  1312.         -l "Random" polyFRdmGrp;
  1313.     columnLayout -adj true -cal left colF;
  1314.             
  1315.     checkBox -l "Activate"
  1316.         -onc "polySelectConstraint -r true"
  1317.         -ofc "polySelectConstraint -r false"
  1318.         polyFRdmCheck;
  1319.             
  1320.     floatSliderGrp -field true -l "Ratio"
  1321.         -cw 1 90 -min 0 -max 1
  1322.         -cc "polySelectConstraint -rr #1"
  1323.         rdmFRatSld;
  1324.  
  1325.     setParent ..;
  1326.     setParent ..;
  1327.  
  1328.     setParent ..;    // end face column
  1329.     setParent ..;    // end face frame
  1330.     setUITemplate -popTemplate;
  1331.     formLayout -e -vis true $scrollFormName;
  1332. }
  1333.  
  1334. // Create texture coord layout
  1335. ///////////////////////////////////////////////////////////////////////
  1336. global proc polygonConstraintMap(
  1337. string $mapLayoutName,
  1338. string $scrollFormName)
  1339. {
  1340.     setParent $scrollFormName;
  1341.     formLayout -e -vis false $scrollFormName;
  1342.     setUITemplate -pushTemplate DefaultTemplate;
  1343.     $widgetList =
  1344.         `frameLayout -vis false -cl false -cll false -lv false $mapLayoutName`;
  1345.     columnLayout -adj true -cal left colF;
  1346.     
  1347.     formLayout -e
  1348.         -af $mapLayoutName bottom 0 
  1349.         -af $mapLayoutName right  0 
  1350.         -af $mapLayoutName left  0 
  1351.         -af $mapLayoutName top 0 
  1352.         $scrollFormName;
  1353.  
  1354. // UV Properties
  1355. //-----------------------------------------------------------------------
  1356.     frameLayout -borderVisible true -collapsable true -collapse false 
  1357.         -l "Properties" polyMPropGrp;
  1358.     columnLayout -adj true -cal left colF;
  1359.     radioButtonGrp -l "Location" -numberOfRadioButtons 3
  1360.         -cw 1 80 -cw 2 70 //-cw 3 130 -cw 4 130
  1361.         -label1 "Off"
  1362.         -on1 "polySelectConstraint -w 0"
  1363.         -label2 "OnBorder"
  1364.         -on2 "polySelectConstraint -w 1"
  1365.         -label3 "Inside"
  1366.         -on3 "polySelectConstraint -w 2"
  1367.         PolyMLocRadio;
  1368.     
  1369.     setParent ..;
  1370.     setParent ..;
  1371. // UV Geometry
  1372. //-----------------------------------------------------------------------
  1373.     frameLayout -borderVisible true -collapsable true -collapse true
  1374.         -l "Geometry" polyMGeomGrp;
  1375.     columnLayout -adj true -cal left colF;
  1376. // UV Order
  1377. //-----------------------------------------------------------------------
  1378.     frameLayout -borderVisible true -collapsable true -collapse false 
  1379.         -l "Neighbors" polyMOrdGrp;
  1380.     columnLayout -adj true -cal left colF;
  1381.             
  1382.     checkBox -l "Activate"
  1383.         -onc "polySelectConstraint -or true"
  1384.         -ofc "polySelectConstraint -or false"
  1385.         polyMOrderCheck;
  1386.             
  1387.     intSliderGrp -field true -l "Min"
  1388.         -cw 1 90 -min 0 -max 10 -fmx 255
  1389.         -cc "int $iv[] = `polySelectConstraint -q -orb`;polySelectConstraint -orb #1 $iv[1]"
  1390.         minMOrderSld;
  1391.     intSliderGrp -field true -l "Max"
  1392.         -cw 1 90 -min 0 -max 10 -fmx 255
  1393.         -cc "int $iv[] = `polySelectConstraint -q -orb`;polySelectConstraint -orb $iv[0] #1"
  1394.         maxMOrderSld;
  1395.     
  1396.     setParent ..;
  1397.     setParent ..;
  1398. // UV Angle
  1399. //-----------------------------------------------------------------------
  1400.     frameLayout -borderVisible true -collapsable true -collapse true
  1401.         -l "Angle" polyMAngGrp;
  1402.     columnLayout -adj true -cal left colF;
  1403.  
  1404.     checkBox -l "Activate"
  1405.         -onc "polySelectConstraint -a true"
  1406.         -ofc "polySelectConstraint -a false"
  1407.         polyMAngCheck;
  1408.  
  1409.     floatSliderGrp -field true -l "Min"
  1410.         -cw 1 90 -min 0 -max 360
  1411.         -cc "float $fv[] = `polySelectConstraint -q -ab`;polySelectConstraint -ab #1 $fv[1]"
  1412.         minMAngSld;
  1413.     floatSliderGrp -field true -l "Max"
  1414.         -cw 1 90 -min 0 -max 360
  1415.         -cc "float $fv[] = `polySelectConstraint -q -ab`;polySelectConstraint -ab $fv[0] #1"
  1416.         maxMAngSld;
  1417.             
  1418.     setParent ..;
  1419.     setParent ..;
  1420. // UV Mapped Area
  1421. //-----------------------------------------------------------------------
  1422.     frameLayout -borderVisible true -collapsable true -collapse true
  1423.         -l "Mapped Area" polyM2dAreaGrp;
  1424.     columnLayout -adj true -cal left colF;
  1425.             
  1426.     radioButtonGrp -l "" -numberOfRadioButtons 3
  1427.         -cw 1 1 -cw 2 89 -cw 3 100// -cw 4 100
  1428.         -label1 "Off"
  1429.         -on1 "polySelectConstraint -ta 0"
  1430.         -label2 "Unsigned"
  1431.         -on2 "polySelectConstraint -ta 1"
  1432.         -label3 "Signed"
  1433.         -on3 "polySelectConstraint -ta 2"
  1434.         polyMArea2Radio;
  1435.  
  1436.     floatSliderGrp -field true -l "Min"
  1437.         -cw 1 90 -fmn -999 -fmx 999 -min 0 -max 10
  1438.         -cc "float $fv[] = `polySelectConstraint -q -tab`;polySelectConstraint -tab #1 $fv[1]"
  1439.         minMArea2Sld;
  1440.     floatSliderGrp -field true -l "Max"
  1441.         -cw 1 90 -fmn -999 -fmx 999 -min 0 -max 10
  1442.         -cc "float $fv[] = `polySelectConstraint -q -tab`;polySelectConstraint -tab $fv[0] #1"
  1443.         maxMArea2Sld;
  1444.             
  1445.     setParent ..;
  1446.     setParent ..;
  1447. // UV Distance        
  1448. //-----------------------------------------------------------------------
  1449.     frameLayout -borderVisible true -collapsable true -collapse true
  1450.         -l "Distance" polyMDistGrp;
  1451.     columnLayout -adj true -cal left colF;
  1452.             
  1453.     radioButtonGrp -l "" -numberOfRadioButtons 4
  1454.         -cw 1 1 -cw 2 89 -cw 3 100// -cw 4 100 -cw 5 100
  1455.         -label1 "Off"
  1456.         -on1 "polySelectConstraint -d 0"
  1457.         -label2 "Point"
  1458.         -on2 "polySelectConstraint -d 1"
  1459.         -label3 "Axis"
  1460.         -on3 "polySelectConstraint -d 2"
  1461.         -label4 "Plane"
  1462.         -on4 "polySelectConstraint -d 3"
  1463.         PolyMDistRadio;
  1464.  
  1465.     floatSliderGrp -field true -l "Min"
  1466.         -cw 1 90 -min 0 -max 100
  1467.         -cc "float $fv[] = `polySelectConstraint -q -db`;polySelectConstraint -db #1 $fv[1]"
  1468.         minMDistSld;
  1469.     floatSliderGrp -field true -l "Max"
  1470.         -cw 1 90 -min 0 -max 100
  1471.         -cc "float $fv[] = `polySelectConstraint -q -db`;polySelectConstraint -db $fv[0] #1"
  1472.         maxMDistSld;
  1473.             
  1474.     floatSliderGrp -field true -l "Px"
  1475.         -cw 1 90 -min -1000 -max 1000 -pre 2
  1476.         -cc "float $fv[] = `polySelectConstraint -q -dp`;polySelectConstraint -dp #1 $fv[1] $fv[2]"
  1477.         pntMDistPxSld;
  1478.     floatSliderGrp -field true -l "Py"
  1479.         -cw 1 90 -min -1000 -max 1000 -pre 2
  1480.         -cc "float $fv[] = `polySelectConstraint -q -dp`;polySelectConstraint -dp $fv[0] #1 $fv[2]"
  1481.         pntMDistPySld;
  1482.     floatSliderGrp -field true -l "Pz"
  1483.         -cw 1 90 -min -1000 -max 1000 -pre 2
  1484.         -cc "float $fv[] = `polySelectConstraint -q -dp`;polySelectConstraint -dp $fv[0] $fv[1] #1"
  1485.         pntMDistPzSld;
  1486.         
  1487.     floatSliderGrp -field true -l "Vx"
  1488.         -cw 1 90 -min -100 -max 100 -pre 2
  1489.         -cc "float $fv[] = `polySelectConstraint -q -da`;polySelectConstraint -da #1 $fv[1] $fv[2]"
  1490.         pntMDistVxSld;
  1491.     floatSliderGrp -field true -l "Vy"
  1492.         -cw 1 90 -min -100 -max 100 -pre 2
  1493.         -cc "float $fv[] = `polySelectConstraint -q -da`;polySelectConstraint -da $fv[0] #1 $fv[2]"
  1494.         pntMDistVySld;
  1495.     floatSliderGrp -field true -l "Vz"
  1496.         -cw 1 90 -min -100 -max 100 -pre 2
  1497.         -cc "float $fv[] = `polySelectConstraint -q -da`;polySelectConstraint -da $fv[0] $fv[1] #1"
  1498.         pntMDistVzSld;
  1499.             
  1500.     setParent ..;
  1501.     setParent ..;
  1502.             
  1503.     setParent ..;    // end uv geom column
  1504.     setParent ..;    // end uv geom frame
  1505. // UV Random
  1506. //-----------------------------------------------------------------------
  1507.     frameLayout -borderVisible true -collapsable true -collapse false 
  1508.         -l "Random" polyMRdmGrp;
  1509.     columnLayout -adj true -cal left colF;
  1510.             
  1511.     checkBox -l "Activate"
  1512.         -onc "polySelectConstraint -r true"
  1513.         -ofc "polySelectConstraint -r false"
  1514.         polyMRdmCheck;
  1515.             
  1516.     floatSliderGrp -field true -l "Ratio"
  1517.         -cw 1 90 -min 0 -max 1
  1518.         -cc "polySelectConstraint -rr #1"
  1519.         rdmMRatSld;
  1520.  
  1521.     setParent ..;
  1522.     setParent ..;
  1523.  
  1524.     setParent ..;    // end map column
  1525.     setParent ..;    // end map frame
  1526.     setUITemplate -popTemplate;
  1527.     formLayout -e -vis true $scrollFormName;
  1528. }
  1529.  
  1530. // Create top control : main proc
  1531. ///////////////////////////////////////////////////////////////////////
  1532. global proc polygonConstraint (string $whichPanel)
  1533. {
  1534.     // get parent window name
  1535.     string $fullName = `scriptedPanel -q -ctl $whichPanel`;
  1536.     string $buffer[];
  1537.     $numTokens = `tokenize $fullName "|" $buffer`;
  1538.     $isSeparate = `scriptedPanel -q -to $whichPanel`;
  1539.  
  1540.     if ($isSeparate) {
  1541.         // parent window adjusts to fit its children size
  1542.         window -e -resizeToFitChildren true $buffer[0];
  1543.         // parent window icon name
  1544.         window -e -iconName "PolyConstraints" $buffer[0];
  1545.     }
  1546.     
  1547.     string $topLayoutName    = "polyConstraintForm";
  1548.     string $scrollName        = "polyConstraintScroll";
  1549.     string $scrollFormName    = "polyConstraintScrollForm";
  1550.     string $vtxLayoutName    = "polyConstraintVtx";
  1551.     string $edgLayoutName    = "polyConstraintEdg";
  1552.     string $facLayoutName    = "polyConstraintFac";
  1553.     string $mapLayoutName    = "polyConstraintOff";
  1554.  
  1555.     setUITemplate -pushTemplate DefaultTemplate;
  1556.  
  1557. // Create the top level layout
  1558.     formLayout  $topLayoutName;    
  1559.  
  1560. // Mode buttons
  1561.     radioButtonGrp -l "Constrain:" -numberOfRadioButtons 2
  1562.         -cw 1 95 -cw 2 130 -cw 3 115
  1563.         -label1 "Nothing"
  1564.         -on1 "polySelectConstraint -m 0"
  1565.         -label2 "Next Selection"
  1566.         -on2 "polySelectConstraint -m 1"
  1567.         PolyModRadio;
  1568.     radioButtonGrp -l "          " -numberOfRadioButtons 2
  1569.         -cw 1 95 -cw 2 130 -cw 3 115
  1570.         -label1 "Current and Next"
  1571.         -on1 "polySelectConstraint -m 2"
  1572.         -label2 "All and Next"
  1573.         -on2 "polySelectConstraint -m 3"
  1574.         -shareCollection PolyModRadio
  1575.         PolyModRadio2;
  1576.         
  1577. // Scrollable area containing the frames for various types
  1578.     scrollLayout -cr true -h 300 $scrollName; //-h 300 enough to see facet properties
  1579.         formLayout $scrollFormName;
  1580.         setParent ..;    // end formLayout
  1581.     setParent ..;        // end scrollLayout $scrollName
  1582.  
  1583. // Propagation 
  1584.     frameLayout -collapsable false -borderVisible false -l ""
  1585.         polyExtendGrp;
  1586.     
  1587.         formLayout propF ;
  1588.         
  1589.             // shell & border automatic propagation
  1590.             radioButtonGrp -l "Propagation:" -numberOfRadioButtons 3
  1591.                 -cw 1 90 -cw 2 60 -cw 3 75 -cw 4 100
  1592.                 -label1 "Off" 
  1593.                 -on1 "polySelectConstraint -bo false -sh false"
  1594.                 -label2 "Shell"
  1595.                 -on2 "polySelectConstraint -bo false -sh true"
  1596.                 -label3 "Border"
  1597.                 -on3 "polySelectConstraint -bo true -sh false"
  1598.                 PolyPropSelect;
  1599.  
  1600.             // buttons
  1601.             formLayout -numberOfDivisions 100 selectButtonForm ;
  1602.                 // propagation buttons
  1603.                 button -width 150 -l "Grow Selection Region"   -c "polySelectConstraint -pp 1"
  1604.                     buttonMore;
  1605.                 button -width 150 -l "Shrink Selection Region"   -c "polySelectConstraint -pp 2"
  1606.                     buttonLess;
  1607.                 button -width 165 -l "Select Selection Boundary" -c "polySelectConstraint -pp 3"
  1608.                     buttonBorder;
  1609.  
  1610.                 //  Force the buttons to have a common width, this will not only
  1611.                 //  look better but also allow the buttons to be centred in the
  1612.                 //  window.
  1613.                 int $divisions = `formLayout -query -numberOfDivisions selectButtonForm`;
  1614.                 int $space = 4;                         // Space between buttons.
  1615.                 int $left  = $divisions/3;        // Left division
  1616.                 int $right = $divisions*2/3;    // Right division
  1617.                 formLayout -e
  1618.                     -af buttonMore   "top"    0
  1619.                     -af buttonMore   "bottom" 0
  1620.                     -af buttonMore   "left"   0
  1621.                     -ac buttonMore   "right"  $space buttonLess
  1622.  
  1623.                     -af buttonLess   "top"    0
  1624.                     -af buttonLess   "bottom" 0
  1625.                     -ap buttonLess   "left"   0 $left
  1626.                     -ap buttonLess   "right"  0 $right
  1627.  
  1628.                     -af buttonBorder "top"    0
  1629.                     -af buttonBorder "bottom" 0
  1630.                     -af buttonBorder "right"  0
  1631.                     -ac buttonBorder "left"   $space buttonLess
  1632.                     selectButtonForm;
  1633.                     
  1634.             setParent ..;    // end formLayout selectButtonForm
  1635.  
  1636.             formLayout closeButtonForm ;
  1637.                 // Close buttons
  1638.                 if ($isSeparate) {
  1639.                     button -width 200 -l "Close and Reset" -c ("resetPolySelectConstraint; deleteUI " + $buffer[0])
  1640.                         buttonCloseReset;
  1641.                     button -width 250 -l "Close and Remember" -c ("rememberPolySelectConstraint; deleteUI " + $buffer[0])
  1642.                         buttonCloseRemember;
  1643.  
  1644.                     formLayout -e
  1645.                         -af buttonCloseReset "left" 0
  1646.                         -ac buttonCloseRemember "left" $space buttonCloseReset
  1647.                         -af buttonCloseRemember "right"  0
  1648.                         closeButtonForm;
  1649.                 }
  1650.             setParent ..;    // end formLayout closeButtonForm
  1651.             
  1652.             formLayout -e
  1653.                 -af PolyPropSelect "top"    0
  1654.                 -af PolyPropSelect "left"    0
  1655.                 -af PolyPropSelect "right"    0
  1656.                 -an PolyPropSelect "bottom"
  1657.                 
  1658.                 -ac selectButtonForm "top"     0 PolyPropSelect
  1659.                 -af selectButtonForm "left"    0
  1660.                 -af selectButtonForm "right"    0
  1661.                 -ac closeButtonForm "top" 5 selectButtonForm
  1662.                 -af closeButtonForm "left"    0
  1663.                 -af closeButtonForm "right"    0
  1664.                 //-af closeButtonForm "bottom" 0
  1665.                 propF;
  1666.             
  1667.         setParent ..;         // end formLayout propF
  1668.     setParent ..;             // end frameLayout polyExtendGrp;
  1669.  
  1670.     // setup the layout
  1671.     formLayout -e
  1672.         -af PolyModRadio "top"        0 
  1673.         -an PolyModRadio "bottom"
  1674.         -af PolyModRadio "left"        0
  1675.         -af PolyModRadio "right"    0
  1676.         -af PolyModRadio2 "left"        0
  1677.             
  1678.         -ac PolyModRadio2 "top"        0 PolyModRadio
  1679.         -ac $scrollName "top"        0 PolyModRadio2
  1680.         -ac $scrollName "bottom"    0 polyExtendGrp
  1681.         -af $scrollName "left"        0
  1682.         -af $scrollName "right"        0
  1683.  
  1684.         -an polyExtendGrp "top"
  1685.         -af polyExtendGrp "bottom"    0
  1686.         -af polyExtendGrp "left"    0
  1687.         -af polyExtendGrp "right"    0
  1688.         $topLayoutName;
  1689.  
  1690.     setParent ..;    // end formLayout $topLayoutName
  1691.  
  1692.     setUITemplate -popTemplate;
  1693.     
  1694. // Update current component frame
  1695.     restorePolySelectConstraint;
  1696.     polygonConstraintUpdate($whichPanel/*,TOCLEAN
  1697.                               $scrollFormName,
  1698.                               $vtxLayoutName,
  1699.                               $edgLayoutName,
  1700.                               $facLayoutName,
  1701.                               $mapLayoutName*/);
  1702.  
  1703. // Give callback for the Monitor to refresh window
  1704.     polySelectConstraintMonitor -cc "polygonConstraintUpdate" $whichPanel;
  1705. }
  1706.